#ifndef LIQUIDDISTRIBUTIONCHANNELINGDEVICECONTROLLER_H
#define LIQUIDDISTRIBUTIONCHANNELINGDEVICECONTROLLER_H
#include "EventAggregator.h"
#include "IWaterHAL.h"
class LiquidDistributionChannelingDeviceController
{
    public:
        LiquidDistributionChannelingDeviceController(IWaterHAL *HAL);
        int getWaterPressureHigh() { //return waterPressureHigh; 
		return true;} //TODO: REMOVE HARDCODE
        void setWaterLevel(int data);
		//EventAggregator *onRequiredLevel; //THIS IS EVENT. NOT HANDLER.
        void onRequiredWaterLevel(); //THIS IS HANDLER OF HAL EVENT.
        void onPressureLow();
        void onPressureHigh();
        bool getIsAtLevel();
        bool getIsPressureHigh();
        int wantedWaterLevel;
    protected:
    private:
		bool isAtRegisteredWaterLevel;
        IWaterHAL *HAL;
        bool waterPressureHigh;
    	//EventHandler *onRequiredWaterLevelHandler;
        //EventHandler *onPressureHighHandler;
        //EventHandler *onPressureLowHandler;
};

#endif // LIQUIDDISTRIBUTIONCHANNELINGDEVICECONTROLLER_H
